package com.aloda.ojquestion.service;

import com.aloda.ojcommon.domain.result.PageResult;
import com.aloda.ojquestion.pojo.dto.QuestionAddDTO;
import com.aloda.ojquestion.pojo.dto.QuestionEditDTO;
import com.aloda.ojquestion.pojo.dto.QuestionPageDTO;
import com.aloda.ojquestion.pojo.dto.QuestionTableDTO;
import com.aloda.ojcommon.domain.entity.Question;
import com.aloda.ojquestion.pojo.vo.QuestionDetailVO;
import com.aloda.ojquestion.pojo.vo.QuestionPageVO;
import com.aloda.ojquestion.pojo.vo.QuestionTableVO;
import com.aloda.ojquestion.pojo.vo.QuestionUserInfoVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author aloda
* @description 针对表【question(题目表)】的数据库操作Service
* @createDate 2025-04-25 15:51:34
*/
public interface QuestionService extends IService<Question> {

    /**
     * 分页查询题目
     * @param questionPageDTO
     * @return
     */
    PageResult<QuestionPageVO> pageQuery(QuestionPageDTO questionPageDTO);

    /**
     * 通过id获取题目信息
     * @param id
     * @return
     */
    QuestionUserInfoVO getQuestionInfoById(Long id);

    /**
     * 新增题目
     * @param questionAddDTO
     * @return
     */
    long addQuestion(QuestionAddDTO questionAddDTO);

    /**
     * 编辑题目
     * @param questionEditDTO
     */
    void editQuestion(QuestionEditDTO questionEditDTO);

    /**
     * 删除题目
     * @param ids
     */
    void deleteQuestion(List<Long> ids);

    /**
     * 分页查询主页的题目表格浏览信息
     * @param questionTableDTO
     * @return
     */
    PageResult<QuestionTableVO> pageQueryQuestionTableVO(QuestionTableDTO questionTableDTO);

    /**
     * 做题页面通过id查询题目详情
     * @param id
     * @return
     */
    QuestionDetailVO getQuestionDetailById(Long id);
}
